package JAVAcollectionsanddatastructures.CollectionFramework;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapInterface {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("女神","迪丽热巴");
        map.put("及时雨","宋江");
        String ret = map.get("女神");
        String ret1 = map.get("女生");
        System.out.println(ret1);
        System.out.println(ret);

        //根据指定的 k 查找对应的 v，没有找到用默认值代替
        String ret3 = map.getOrDefault("及时雨","谭臣");//此时能查找到及时雨对应的宋江
        System.out.println(ret3);
        String ret4 = map.getOrDefault("及时雨3","谭臣");//此时没有查找到及时雨3对应的Value，就将谭臣赋予给它
        System.out.println(ret4);

        //判断是否包含 key   containsValue:判断是否包含Value
        boolean ret5 = map.containsKey("女神");
        System.out.println(ret5);
    }

    public static void main1(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("及时雨","宋江");
        map.put("女神","迪丽热巴");
        System.out.println(map); //打印顺序和结果顺序为什么不一样呢？是因为key经过哈希函数去映射找到对应的位置，找到对应的value。所以不是说先打印的位置就一定在前
        System.out.println("==================");

        //将key和value包装起来，放到entrySet  将所有键值对返回
        Set<Map.Entry<String,String>> entrySet = map.entrySet();
        for (Map.Entry<String,String> entry:entrySet) {
            System.out.println("key:"+entry.getKey()+"value:"+entry.getValue());
        }

    }

}
